Skip to content

Fix DevTunnel endpoint URL publication - #19590

Merged
David Negstad (danegsta) merged 2 commits into
mainfrom
dev/karolz/fix-devtunnel-endpoints
Aug 24, 2026
Merged

Fix DevTunnel endpoint URL publication#19590
David Negstad (danegsta) merged 2 commits into
mainfrom
dev/karolz/fix-devtunnel-endpoints

Conversation

@karolz-ms

@karolz-ms Karol Zadora-Przylecki (karolz-ms) commented Aug 21, 2026

Copy link
Copy Markdown
Contributor

Description

After upgrading to Aspire 13.5, DevTunnel port resources could reach Running and Healthy while the Dashboard and MCP resource snapshots still reported no URLs.

The proxyless endpoint allocator introduced in #17924 assigned a temporary localhost port to every unported proxyless endpoint, including DevTunnelPortResource. Because DevTunnels used an existing allocation as the signal that ResourceEndpointsAllocatedEvent had already run, it replaced the temporary endpoint with the public tunnel endpoint without publishing the URL update.

This change limits automatic proxyless port allocation to IComputeResource instances and containers. Executable, container, and project resources retain the allocation behavior from #17924, while integration-owned endpoints such as DevTunnel ports remain unallocated until their integration publishes the real endpoint. Regression coverage also explicitly guards DotnetProjectResource as a compute resource.

User-facing usage

Existing DevTunnel AppHosts now publish their public URLs again without code changes.

C#

builder.AddDevTunnel("public-tunnel")
    .WithReference(gateway)
    .WithAnonymousAccess();

TypeScript

const tunnel = await builder.addDevTunnel("public-tunnel")
  .withReference(gateway);

Validation

  • Targeted proxyless allocation coverage for executable, container, project, and DevTunnel port resources.
  • DotnetProjectResource compute-resource classification coverage.
  • DCP-backed DevTunnel reproduction using an isolated fake CLI, resulting in a healthy resource snapshot with active public tunnel and inspect URLs.

Fixes #19496

Checklist

  • Is this feature complete?
    • Yes. Ready to ship.
    • No. Follow-up changes expected.
  • Are you including unit tests for the changes and scenario tests if relevant?
    • Yes
    • No
  • Did you add public API?
    • Yes
      • If yes, did you have an API Review for it?
        • Yes
        • No
      • Did you add <remarks /> and <code /> elements on your triple slash comments?
        • Yes
        • No
    • No
  • Does the change make any security assumptions or guarantees?
    • Yes
      • If yes, have you done a threat model and had a security review?
        • Yes
        • No
    • No

Copilot AI balanced review requested due to automatic review settings August 21, 2026 23:40
@github-actions

Copy link
Copy Markdown
Contributor

🚀 Dogfood this PR with:

⚠️ WARNING: Do not do this without first carefully reviewing the code of this PR to satisfy yourself it is safe.

curl -fsSL https://raw.githubusercontent.com/microsoft/aspire/main/eng/scripts/get-aspire-cli-pr.sh | bash -s -- 19590

Or

  • Run remotely in PowerShell:
iex "& { $(irm https://raw.githubusercontent.com/microsoft/aspire/main/eng/scripts/get-aspire-cli-pr.ps1) } 19590"

@github-actions github-actions Bot added the needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners label Aug 21, 2026
@github-actions

This comment has been minimized.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Restricts proxyless port allocation to compute resources, restoring DevTunnel URL publication.

Changes:

  • Gates automatic port allocation on IComputeResource.
  • Adds DevTunnel regression coverage.
  • Verifies DotnetProjectResource remains a compute resource.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated no comments.

File Description
src/Aspire.Hosting/Dcp/DcpExecutor.cs Limits proxyless port allocation to compute resources.
tests/Aspire.Hosting.Tests/Dcp/DcpExecutorTests.cs Tests compute and DevTunnel allocation behavior.
tests/Aspire.Hosting.Dotnet.Tests/DotnetProjectResourceTests.cs Verifies .NET project compute classification.

💡 Add a code-review agent skill for context-aware, tailored reviews. Learn more in the docs.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed the change and verified the core behavior locally. Summary: 1 blocking correctness/regression issue, 1 incorrect comment, and 3 test-coverage gaps.

The headline problem is that IComputeResource does not mean "has a DCP workload" — DCP selects container workloads by ContainerImageAnnotation, which RunAsEmulator adds directly to Azure resources that are not IComputeResource. I reproduced a startup crash for that case on this branch; details are inline.

Comment thread src/Aspire.Hosting/Dcp/DcpExecutor.cs Outdated
Comment thread src/Aspire.Hosting/Dcp/DcpExecutor.cs Outdated
Comment thread src/Aspire.Hosting/Dcp/DcpExecutor.cs
Comment thread tests/Aspire.Hosting.Tests/Dcp/DcpExecutorTests.cs
Comment thread tests/Aspire.Hosting.Tests/Dcp/DcpExecutorTests.cs
@github-actions

Copy link
Copy Markdown
Contributor

Retrying the failed CI jobs for this pull request from the CI run attempt. The rerun is being tracked in the rerun attempt.

@github-actions

Copy link
Copy Markdown
Contributor

Retrying the failed CI jobs for this pull request from the CI run attempt. The rerun is being tracked in the rerun attempt.

@github-actions

Copy link
Copy Markdown
Contributor

Retrying the failed CI jobs for this pull request from the CI run attempt. The rerun is being tracked in the rerun attempt.

Copilot AI review requested due to automatic review settings August 22, 2026 04:15
@github-actions

This comment has been minimized.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 4 out of 4 changed files in this pull request and generated no new comments.

@karolz-ms

Copy link
Copy Markdown
Contributor Author

PR Testing Report

PR Information

  • PR Number: Fix DevTunnel endpoint URL publication #19590
  • Title: Fix DevTunnel endpoint URL publication
  • Head Commit: 89ace5c10080a0ada314431a98a5da487e7d8a69
  • Tested At: 2026-08-22T04:33:54Z
  • Execution Target: Local macOS ARM64 workspace; Podman 6.0.2 Linux ARM64 VM for the container scenario

Artifact Version Verification

  • Expected Commit: 89ace5c10080a0ada314431a98a5da487e7d8a69
  • Installed Version: 13.6.0-pr.19590.g89ace5c1
  • Source Checkout: 89ace5c10080a0ada314431a98a5da487e7d8a69
  • Status: PASS - the dogfood artifact and source checkout matched the latest PR head before and after testing.

Changes Analyzed

Files Changed

  • src/Aspire.Hosting/Dcp/DcpExecutor.cs - allocates unported proxyless endpoints for IComputeResource and annotation-backed container workloads.
  • tests/Aspire.Hosting.DevTunnels.Tests/DevTunnelResourceBuilderExtensionsTests.cs - adds a DCP-backed DevTunnel URL-publication test.
  • tests/Aspire.Hosting.Dotnet.Tests/DotnetProjectResourceTests.cs - asserts that DotnetProjectResource is an IComputeResource.
  • tests/Aspire.Hosting.Tests/Dcp/DcpExecutorTests.cs - covers DevTunnel exclusion and non-compute container allocation.

Change Categories

  • Hosting core changes
  • DevTunnel behavior
  • Test changes
  • CLI command changes
  • Dashboard UI changes
  • Template changes
  • Client/component changes
  • VS Code extension changes
  • CI infrastructure changes

Test Scenarios Executed

Scenario 1: DCP proxyless allocator regression suite

Objective: Verify the new workload predicate and preserve executable, project, ordinary container, and fixed-port behavior.

Coverage Type: Regression and boundary

Status: PASS

Tests:

  1. ProxylessPortAllocatorOnlyAllocatesPortsForDcpWorkloads
  2. ProxylessPortAllocatorAllocatesPortForNonComputeContainerResource
  3. EndpointPortsExecutableNotReplicatedProxylessNoPortNoTargetPortAllocated
  4. EndpointPortsProjectWithEndpointProxySupportUsesProxylessEndpoint
  5. EndpointPortsContainerProxylessNoPortTargetPortSet
  6. ProxylessPortAllocatorExcludesFixedPublicPorts

Result: 6 passed, 0 failed.

Evidence: hosting-proxyless-tests.log

Scenario 2: DevTunnel lifecycle and DotnetProject classification

Objective: Verify DCP publishes DevTunnel URLs and DotnetProjectResource remains eligible for automatic allocation.

Coverage Type: Regression

Status: PASS

Tests:

  1. DcpStartupPublishesDevTunnelUrls
  2. ResourceReady_PublishesUrlProperties
  3. AddDotnetProject_ResourceSupportsServiceDiscoveryAndIsComputeResource

Result: 3 passed, 0 failed.

Evidence:

  • devtunnel-source-tests.log
  • dotnet-project-compute-test.log

Scenario 3: Previously failing Azure Storage emulator compatibility

Objective: Verify an annotation-backed, non-compute container resource receives and reuses host ports across persistent restarts.

Coverage Type: Regression and persistent-lifetime boundary

Status: PASS

Test: AzureStorageEmulator_WithPersistentLifetime_ReusesContainersAndPorts

Result: 1 passed, 0 failed under Podman.

Evidence:

  • azure-storage-persistent-test.log
  • podman-version.txt

Scenario 4: Fresh dogfood DevTunnel reproduction

Objective: Reproduce the reported lifecycle with a new AppHost from the updated PR package hive and a deterministic fake devtunnel CLI.

Coverage Type: Happy path and boundary

Status: PASS

Steps:

  1. Created a fresh aspire-empty AppHost from the PR hive.
  2. Added Aspire.Hosting.DevTunnels@13.6.0-pr.19590.g89ace5c1.
  3. Started an executable HTTP resource and exposed it through AddDevTunnel.
  4. Waited for public-tunnel-gateway-http to become healthy.
  5. Captured and asserted the live aspire describe --format Json snapshot.
  6. Confirmed both the local target and Dashboard responded.
  7. Stopped the AppHost and confirmed its process exited.

Observed Resource State:

  • Resource type: DevTunnelPort
  • State: Running
  • Health: Healthy
  • Tunnel URL: https://pr19590tunnel-5109.use.devtunnels.ms
  • Inspect URL: https://pr19590tunnel-5109-inspect.use.devtunnels.ms
  • No localhost URL appeared in the resource's urls collection.

Evidence:

  • devtunnel-port-describe.json
  • all-resources-describe.json
  • devtunnel-snapshot-assertion.txt
  • fake-devtunnel-calls.log
  • apphost-detached.log

Scenario 5: Full Hosting.Azure CI corroboration

Objective: Confirm the fix survives the complete Azure hosting suites on both CI operating systems.

Coverage Type: Full project CI

Status: PASS

Results:

  • Linux: 1,691 passed, 0 failed, 5 skipped.
  • Windows: 1,660 passed, 0 failed, 0 skipped.

CI Jobs:

Evidence:

  • hosting-azure-linux-ci.log
  • hosting-azure-windows-ci.log

Additional CI Signal

At the final snapshot, the PR had 363 passing, 13 pending, 1 skipped, and 1 failing check. The failure is the untouched VS Code extension workspace-target-proof E2E shard: one test passed and one project-folder-picker test timed out waiting for an element to become visible. No causal relationship to this four-file hosting/test diff was found.

CI Job: https://github.com/microsoft/aspire/actions/runs/32551198408/job/96979500951

Summary

Scenario Status Notes
Artifact and source SHA verification PASS Both matched the latest PR head
DCP allocator regression suite PASS 6/6
DevTunnel and DotnetProject source tests PASS 3/3
Azure Storage persistent emulator PASS 1/1 under Podman
Fresh DevTunnel dogfood reproduction PASS Public and inspect URLs published
Hosting.Azure CI Linux/Windows PASS 3,351 passed, 0 failed
VS Code workspace-target-proof E2E WARNING Unrelated UI timeout in untouched area

Overall Result

PASS - PR CHANGES VERIFIED

All approved changed-area scenarios passed. The prior Azure Storage emulator regression is fixed locally and in both full Hosting.Azure CI jobs. The remaining VS Code E2E timeout should be rerun or triaged separately before merge if a fully green check set is required.

Artifacts

All preserved logs, snapshots, the repro AppHost, fake CLI, latest PR diff, CI evidence, and a compressed local evidence bundle are in this report directory.

@github-actions

Copy link
Copy Markdown
Contributor

Retrying the failed CI jobs for this pull request from the CI run attempt. The rerun is being tracked in the rerun attempt.

Limit automatic proxyless port allocation to compute resources so integration-owned endpoints can publish their own addresses.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: e3b04d22-d265-49d0-861a-09aac8be80d6
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: ec7aab9b-2163-45b7-89f6-c349fef7f07f
@github-actions

Copy link
Copy Markdown
Contributor

Retrying the failed CI jobs for this pull request from the CI run attempt. The rerun is being tracked in the rerun attempt.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 4 out of 4 changed files in this pull request and generated no new comments.

@github-actions

Copy link
Copy Markdown
Contributor

Tests selector (audit mode)

The full test matrix and all jobs still run in audit mode. The tests and jobs below are what selective CI would run under enforcement.

50 / 102 test projects · 4 jobs, from 4 changed files.

Selected test projects (50 / 102)

Aspire.EndToEnd.Tests, Aspire.Hosting.Analyzers.Tests, Aspire.Hosting.Azure.Kubernetes.Tests, Aspire.Hosting.Azure.Kusto.Tests, Aspire.Hosting.Azure.Tests, Aspire.Hosting.Blazor.Tests, Aspire.Hosting.Browsers.Tests, Aspire.Hosting.CodeGeneration.Go.Tests, Aspire.Hosting.CodeGeneration.Java.Tests, Aspire.Hosting.CodeGeneration.Python.Tests, Aspire.Hosting.CodeGeneration.Rust.Tests, Aspire.Hosting.CodeGeneration.TypeScript.Tests, Aspire.Hosting.Containers.Tests, Aspire.Hosting.DevTunnels.Tests, Aspire.Hosting.Docker.Tests, Aspire.Hosting.Dotnet.Tests, Aspire.Hosting.DotnetTool.Tests, Aspire.Hosting.EntityFrameworkCore.Tests, Aspire.Hosting.Foundry.Tests, Aspire.Hosting.Garnet.Tests, Aspire.Hosting.GitHub.Models.Tests, Aspire.Hosting.Go.Tests, Aspire.Hosting.Java.Tests, Aspire.Hosting.JavaScript.Tests, Aspire.Hosting.Kafka.Tests, Aspire.Hosting.Keycloak.Tests, Aspire.Hosting.Kubernetes.Tests, Aspire.Hosting.Maui.Tests, Aspire.Hosting.Milvus.Tests, Aspire.Hosting.MongoDB.Tests, Aspire.Hosting.MySql.Tests, Aspire.Hosting.Nats.Tests, Aspire.Hosting.OpenAI.Tests, Aspire.Hosting.Oracle.Tests, Aspire.Hosting.Orleans.Tests, Aspire.Hosting.PostgreSQL.Tests, Aspire.Hosting.Python.Tests, Aspire.Hosting.Qdrant.Tests, Aspire.Hosting.RabbitMQ.Tests, Aspire.Hosting.Radius.Tests, Aspire.Hosting.Redis.Tests, Aspire.Hosting.RemoteHost.Tests, Aspire.Hosting.Rust.Tests, Aspire.Hosting.Seq.Tests, Aspire.Hosting.SqlServer.Tests, Aspire.Hosting.Testing.Tests, Aspire.Hosting.Tests, Aspire.Hosting.Valkey.Tests, Aspire.Hosting.Yarp.Tests, Aspire.Playground.Tests

Selected jobs (4)

deployment-e2e, extension-e2e, polyglot, typescript-api-compat


How these were chosen — grouped by what changed

⚠️ 44 of the 50 selected test projects come from a single change — src/Aspire.Hosting/Dcp/DcpExecutor.cs.

🔧 src/Aspire.Hosting/Dcp/DcpExecutor.cs (changed source)
44 via the project graph

show 44

Aspire.Hosting.Analyzers.Tests (2 hops), Aspire.Hosting.Azure.Kubernetes.Tests (2 hops), Aspire.Hosting.Azure.Kusto.Tests (2 hops), Aspire.Hosting.Azure.Tests, Aspire.Hosting.Browsers.Tests (2 hops), Aspire.Hosting.CodeGeneration.Go.Tests, Aspire.Hosting.CodeGeneration.Java.Tests, Aspire.Hosting.CodeGeneration.Python.Tests, Aspire.Hosting.CodeGeneration.Rust.Tests, Aspire.Hosting.CodeGeneration.TypeScript.Tests, Aspire.Hosting.Containers.Tests (2 hops), Aspire.Hosting.Docker.Tests (2 hops), Aspire.Hosting.DotnetTool.Tests (2 hops), Aspire.Hosting.EntityFrameworkCore.Tests (2 hops), Aspire.Hosting.Foundry.Tests (2 hops), Aspire.Hosting.Garnet.Tests (2 hops), Aspire.Hosting.GitHub.Models.Tests (2 hops), Aspire.Hosting.Go.Tests (2 hops), Aspire.Hosting.Java.Tests (2 hops), Aspire.Hosting.JavaScript.Tests (2 hops), Aspire.Hosting.Kafka.Tests (2 hops), Aspire.Hosting.Keycloak.Tests (2 hops), Aspire.Hosting.Kubernetes.Tests (2 hops), Aspire.Hosting.Maui.Tests, Aspire.Hosting.Milvus.Tests (2 hops), Aspire.Hosting.MongoDB.Tests (2 hops), Aspire.Hosting.MySql.Tests (2 hops), Aspire.Hosting.Nats.Tests (2 hops), Aspire.Hosting.OpenAI.Tests (2 hops), Aspire.Hosting.Oracle.Tests (2 hops), Aspire.Hosting.Orleans.Tests (2 hops), Aspire.Hosting.PostgreSQL.Tests (2 hops), Aspire.Hosting.Python.Tests (2 hops), Aspire.Hosting.Qdrant.Tests (2 hops), Aspire.Hosting.RabbitMQ.Tests (2 hops), Aspire.Hosting.Redis.Tests (2 hops), Aspire.Hosting.RemoteHost.Tests, Aspire.Hosting.Rust.Tests (2 hops), Aspire.Hosting.Seq.Tests (2 hops), Aspire.Hosting.SqlServer.Tests (2 hops), Aspire.Hosting.Testing.Tests (2 hops), Aspire.Hosting.Valkey.Tests (2 hops), Aspire.Hosting.Yarp.Tests (2 hops), Aspire.Playground.Tests

🧪 tests/Aspire.Hosting.Tests/Dcp/DcpExecutorTests.cs (changed test)
1 directly: Aspire.Hosting.Tests
2 via the project graph: Aspire.Hosting.Blazor.Tests, Aspire.Hosting.Radius.Tests

📦 affected project Aspire.Hosting
1 test: Aspire.EndToEnd.Tests

🧪 tests/Aspire.Hosting.DevTunnels.Tests/DevTunnelResourceBuilderExtensionsTests.cs (changed test)
1 directly: Aspire.Hosting.DevTunnels.Tests

🧪 tests/Aspire.Hosting.Dotnet.Tests/DotnetProjectResourceTests.cs (changed test)
1 directly: Aspire.Hosting.Dotnet.Tests

Job reasons

Job Triggered by
deployment-e2e affected project Aspire.Hosting.Azure
extension-e2e src/Aspire.Hosting/Dcp/DcpExecutor.cs
• affected project Aspire.Hosting
polyglot affected project Aspire.Hosting.Rust
typescript-api-compat affected project Aspire.Hosting

Selection computed for commit ec17237.

Rene Bentes Pinto (renebentes) pushed a commit to renebentes/3054 that referenced this pull request Aug 31, 2026
…to 13.5.3 (#251)

Updated
[Aspire.Npgsql.EntityFrameworkCore.PostgreSQL](https://github.com/microsoft/aspire)
from 13.5.2 to 13.5.3.

<details>
<summary>Release notes</summary>

_Sourced from [Aspire.Npgsql.EntityFrameworkCore.PostgreSQL's
releases](https://github.com/microsoft/aspire/releases)._

## 13.5.3

## What's New in Aspire 13.5.3

Patch release for Aspire 13.5 that fixes Dashboard Graph view crashes
for resources with multi-path icons and restores missing public URLs for
DevTunnel resources.

### 🐛 Fixes

- 📊 **Dashboard Graph view could crash for Azure Blob resources** —
Resources such as those created with `AddBlobs` use icons containing
multiple SVG paths, which caused an XML parsing exception and broke the
dashboard circuit. The graph now combines multi-path icons correctly.
Regression introduced in 13.5. Fixes
[#​19489](microsoft/aspire#19489).
([#​19585](microsoft/aspire#19585), backport of
[#​19579](microsoft/aspire#19579),
`@​sebastienros`)

- 🌐 **DevTunnel public URLs were missing from the Dashboard and MCP
snapshots** — DevTunnel port resources could report `Running` and
`Healthy` while showing no public URLs. Proxyless port allocation is now
limited to compute and container resources, allowing DevTunnels to
publish their actual public endpoints. Regression introduced in 13.5.
Fixes [#​19496](microsoft/aspire#19496).
([#​19625](microsoft/aspire#19625), backport of
[#​19590](microsoft/aspire#19590),
`@​karolz-ms`, `@​danegsta`)

### 🏷️ Housekeeping

- 🚀 Bumped branding to 13.5.3

---

*Full Changelog:
[v13.5.2...v13.5.3](microsoft/aspire@v13.5.2...v13.5.3)*

*Full commit:
[b5f143315ffb6968ea939a9978797a5b20e4c688](microsoft/aspire@b5f143315ffb6968ea939a9978797a5b20e4c688)*

Commits viewable in [compare
view](microsoft/aspire@v13.5.2...v13.5.3).
</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Mohammed Sanaullah (sanaullahmohammed) pushed a commit to sanaullahmohammed/NexusOps that referenced this pull request Aug 31, 2026
Updated [Aspire.Hosting.JavaScript](https://github.com/microsoft/aspire)
from 13.4.3 to 13.5.3.

<details>
<summary>Release notes</summary>

_Sourced from [Aspire.Hosting.JavaScript's
releases](https://github.com/microsoft/aspire/releases)._

## 13.5.3

## What's New in Aspire 13.5.3

Patch release for Aspire 13.5 that fixes Dashboard Graph view crashes
for resources with multi-path icons and restores missing public URLs for
DevTunnel resources.

### 🐛 Fixes

- 📊 **Dashboard Graph view could crash for Azure Blob resources** —
Resources such as those created with `AddBlobs` use icons containing
multiple SVG paths, which caused an XML parsing exception and broke the
dashboard circuit. The graph now combines multi-path icons correctly.
Regression introduced in 13.5. Fixes
[#​19489](https://github.com/microsoft/aspire/issues/19489).
([#​19585](https://github.com/microsoft/aspire/pull/19585), backport of
[#​19579](https://github.com/microsoft/aspire/pull/19579),
`@​sebastienros`)

- 🌐 **DevTunnel public URLs were missing from the Dashboard and MCP
snapshots** — DevTunnel port resources could report `Running` and
`Healthy` while showing no public URLs. Proxyless port allocation is now
limited to compute and container resources, allowing DevTunnels to
publish their actual public endpoints. Regression introduced in 13.5.
Fixes [#​19496](https://github.com/microsoft/aspire/issues/19496).
([#​19625](https://github.com/microsoft/aspire/pull/19625), backport of
[#​19590](https://github.com/microsoft/aspire/pull/19590),
`@​karolz-ms`, `@​danegsta`)

### 🏷️ Housekeeping

- 🚀 Bumped branding to 13.5.3

---

*Full Changelog:
[v13.5.2...v13.5.3](https://github.com/microsoft/aspire/compare/v13.5.2...v13.5.3)*

*Full commit:
[b5f143315ffb6968ea939a9978797a5b20e4c688](https://github.com/microsoft/aspire/commit/b5f143315ffb6968ea939a9978797a5b20e4c688)*

## 13.5.2

## What's New in Aspire 13.5.2


Patch release for Aspire 13.5 that removes an unused native helper
binary from the Windows CLI archives so 13.5 servicing releases stay
publishable to WinGet.


### 🐛 Fixes



- 🪟 **Windows CLI archives shipped an unused ~4.9 MB `hex1bpty.exe`** —
The Windows CLI archives (`aspire-cli-win-{x64,arm64}-*.zip`) bundled
Hex1b's out-of-process PTY host, which Aspire never executes (DCP owns
every pseudo-terminal Aspire surfaces). Besides the wasted download, the
extra unexplained executable stalled the WinGet publish, since every
binary in the archive goes through executable and malware validation. A
build-only MSBuild target now drops the file from the CLI publish
output; Unix native assets are unaffected. Regression new in 13.5.
([[#​19557](https://github.com/microsoft/aspire/pull/19557)](https://github.com/microsoft/aspire/pull/19557),
backport of #​19554, `@​mitchdenny`)



### 🏷️ Housekeeping



- 🚀 Bumped branding to 13.5.2




*Full Changelog:
[[v13.5.1...v13.5.2](https://github.com/microsoft/aspire/compare/v13.5.1...v13.5.2)](https://github.com/microsoft/aspire/compare/v13.5.1...v13.5.2)*


*Full commit:
[[a22cec24d76e764b3681977e314ab4a0aeed0240](https://github.com/microsoft/aspire/commit/a22cec24d76e764b3681977e314ab4a0aeed0240)](https://github.com/microsoft/aspire/commit/a22cec24d76e764b3681977e314ab4a0aeed0240)*


## 13.5.1

## What's New in Aspire 13.5.1


Patch release for Aspire 13.5 fixing a TypeScript/Java polyglot AppHost
compatibility regression when running the 13.5 SDK under an older
(13.4.x) CLI, plus a DCP update and release-pipeline housekeeping.

### 🐛 Fixes


- 🍎 **Polyglot AppHosts could crash on startup on macOS** — On macOS,
polyglot (TypeScript/Python/Java/Go/Rust) AppHosts could crash during
startup due to an interaction between how DCP's Go runtime forks
detached processes and how .NET Native AOT installs its signal handlers.
Updated DCP (Developer Control Plane) to 0.25.13 to resolve the crash.
([[#​19528](https://github.com/microsoft/aspire/pull/19528)](https://github.com/microsoft/aspire/pull/19528))

- 🔗 **Polyglot AppHosts on the 13.5 SDK crashed under an older CLI with
`MissingMethodException`** — A TypeScript or Java AppHost built with the
13.5 SDK failed to start when launched by an older (13.4.x) CLI, because
the newer codegen called `Aspire.TypeSystem` members that don't exist in
the CLI's older contract. Code generation now probes for these additive
capabilities before using them, so older CLIs skip only the unsupported
feature and startup succeeds. Regression introduced in 13.5 by #​19365.
Fixes #​19503.
([[#​19524](https://github.com/microsoft/aspire/pull/19524)](https://github.com/microsoft/aspire/pull/19524),
backport of #​19506, `@​adamint`)


### 🏷️ Housekeeping



- 📦 Updated DCP (Developer Control Plane) to 0.25.13
([[#​19528](https://github.com/microsoft/aspire/pull/19528)](https://github.com/microsoft/aspire/pull/19528))

- 🔧 Restored WinGet publication using .NET 9 `wingetcreate`
([[#​19509](https://github.com/microsoft/aspire/pull/19509)](https://github.com/microsoft/aspire/pull/19509))

- 🧹 Removed the pipeline-scoped `Publish-Build-Assets` group from the
release pipeline
([[#​19523](https://github.com/microsoft/aspire/pull/19523)](https://github.com/microsoft/aspire/pull/19523),
[[#​19163](https://github.com/microsoft/aspire/pull/19163)](https://github.com/microsoft/aspire/pull/19163))

- 🚀 Bumped branding to 13.5.1
([[#​19531](https://github.com/microsoft/aspire/pull/19531)](https://github.com/microsoft/aspire/pull/19531))




*Full Changelog:
[[v13.5.0...v13.5.1](https://github.com/microsoft/aspire/compare/v13.5.0...v13.5.1)](https://github.com/microsoft/aspire/compare/v13.5.0...v13.5.1)*


*Full commit:
[[69db530a4816698cf1d5fa4557933e0ac4f127c6](https://github.com/microsoft/aspire/commit/69db530a4816698cf1d5fa4557933e0ac4f127c6)](https://github.com/microsoft/aspire/commit/69db530a4816698cf1d5fa4557933e0ac4f127c6)*

## 13.5.0

# Aspire 13.5.0

Aspire 13.5 is a developer-experience release focused on a richer, more
interactive AppHost, closer C# and TypeScript parity, sharper tooling,
more flexible deployment modeling, and a broad set of runtime-stability
improvements.

## Highlights

- 💬 **Richer AppHost interactions** — The Interaction Service now works
across C# and TypeScript AppHosts with stable prompts and dynamic
inputs, file uploads, progress dialogs, notifications, and user-defined
resource command arguments that surface as dashboard controls and CLI
options.
- 🖥️ **Interactive terminal sessions** — The experimental
`WithTerminal()` API lets resources host REPLs, shells, TUIs, and other
interactive programs directly in the dashboard, with an opt-in `aspire
terminal` CLI command for attaching from your shell.
- 🌐 **TypeScript AppHost is generally available** — Polyglot AppHosts no
longer require the `ASPIREATS001` experimental diagnostic and gain
custom health checks, container file copying, HTTPS developer
certificates, faster startup, and several reliability fixes that further
close the gap with C#.
- 🛠️ **CLI installation and reliability** — The Aspire CLI is available
through npm and Nix alongside Homebrew, WinGet, mise, and NuGet. New C#
AppHosts enable the CLI bundle by default, while `aspire stop --force`,
`aspire update --migrate`, `aspire doctor`, docs search, signal
handling, and stale-socket cleanup all improve day-to-day workflows.
- 🎨 **Refreshed dashboard** — The dashboard adopts official Aspire
branding and a new accessible design-token system, with timestamp and
exact numeric telemetry filters, console-log text search, clearer
reconnect and health-check experiences, and correct telemetry streaming
while filters are active.
- 💻 **Rebranded VS Code extension** — The extension is now named
**Aspire** and adds an in-editor dashboard, Bun and MAUI debugging,
resource commands in the tree view, discovered AppHosts, improved
parameter handling, and more efficient workspace discovery.
- ☸️ **More expressive deployments** — Kubernetes and AKS gain
first-class persistent volumes, Azure Container Apps adds deterministic
unique resource naming, Azure environments support delegated subnets,
and Docker Compose can publish Blazor gateways and configure shared
memory.
- ☁️ **Expanded hosting integrations** — Azure resources can be
referenced across resource groups, subscriptions, and tenants; the new
`Aspire.Hosting.Dotnet` package models .NET projects by path; Radius
deployment arrives in preview; and Foundry Local, Redis modules, dev
tunnels, Go debugging, and other integrations gain new capabilities.

## ⚠️ Breaking changes

Notable changes include hosting context `ServiceProvider` properties
being renamed to `Services`, `PublishAsConnectionString` becoming
obsolete in favor of `AddConnectionString`, removal of `aspire ps
--resources` and `--include-hidden` in favor of `aspire describe`,
earlier proxyless endpoint port allocation, deprecation of the GitHub
Models integration, removal of the dashboard AI Assistant, and opt-in
rather than automatic dashboard launch from the VS Code extension.

See the full list and migration guidance in the [Aspire 13.5 breaking
changes](https://aspire.dev/whats-new/aspire-13-5/#breaking-changes).

## 📖 Learn more

For complete details, examples, migration guidance, and everything new
in this release, read [What's new in Aspire
13.5](https://aspire.dev/whats-new/aspire-13-5/).

Thank you to all the community contributors who helped make Aspire 13.5
possible! 💜

---

_Full Changelog:
[v13.4.6...v13.5.0](https://github.com/microsoft/aspire/compare/v13.4.6...v13.5.0)_

_Full commit:
[e076d8e427cb3afb528dbd605acd74c3aea69f94](https://github.com/microsoft/aspire/commit/e076d8e427cb3afb528dbd605acd74c3aea69f94)_

## 13.4.6

## What's New in Aspire 13.4.6

Patch release for Aspire 13.4 fixing polyglot AppHost code generation
binding when CLI and SDK versions diverge, resource service port
collision in `--isolated` mode, and a MongoDB.Driver dependency update.

### 🐛 Fixes

- 🔗 **Polyglot AppHost code generation silently failed when CLI and SDK
versions diverged** — `Aspire.TypeSystem` used a floating strong-name
`AssemblyVersion` that changed with every build. When the installed
Aspire CLI was built at a different version than the AppHost's SDK, the
CLR couldn't satisfy the strong-name bind and every code generator
(TypeScript, Python, Java, Go, Rust) was silently dropped, surfacing as
`No code generator found for language: <lang>`. The `AssemblyVersion` is
now frozen at a stable constant so any compatible CLI/SDK pair on 13.4
binds successfully. Relates to #​18110 and #​17910.
([#​18160](https://github.com/microsoft/aspire/pull/18160),
`@​sebastienros`)

- 🔌 **Multiple AppHosts started with `--isolated` collided on the
resource service port** — Both instances tried to bind to the same fixed
port from `ASPIRE_RESOURCE_SERVICE_ENDPOINT_URL`, causing an "address
already in use" error on the second instance. `DashboardServiceHost` now
binds to port 0 on loopback when `RandomizePorts` is true (set by
`--isolated`), letting the OS assign a unique port per instance.
([#​18341](https://github.com/microsoft/aspire/pull/18341), `@​JamesNK`)

- 🍃 **MongoDB.Driver updated to 3.9.0** — Removes a wrongly pinned
`SharpCompress` transitive dependency and uses the corrected `Snappier`
transitive. Fixes #​17981.
([#​18279](https://github.com/microsoft/aspire/pull/18279),
`@​Falco20019`)

### 🏷️ Housekeeping

- 🚀 Bumped branding to 13.4.6
([#​18343](https://github.com/microsoft/aspire/pull/18343))

---

_Full Changelog:
[v13.4.5...v13.4.6](https://github.com/microsoft/aspire/compare/v13.4.5...v13.4.6)_

_Full commit:
[87fe259e4fc244c599019a7b1304c85a1488f248](https://github.com/microsoft/aspire/commit/87fe259e4fc244c599019a7b1304c85a1488f248)_

> Generated by [Generate release notes for a new stable Aspire
release](https://github.com/microsoft/aspire/actions/runs/27855270514) ·
131 AIC · ⌖ 13.5 AIC · ⊞ 37.4K

<!-- gh-aw-agentic-workflow: Generate release notes for a new stable
Aspire release, engine: copilot, version: 1.0.60, model:
claude-sonnet-4.6, id: 27855270514, workflow_id: release-notes-generate,
run: https://github.com/microsoft/aspire/actions/runs/27855270514 -->

## 13.4.5

## What's New in Aspire 13.4.5

Patch release for Aspire 13.4 clearing a transitive MessagePack security
advisory, tightening CLI validation for Playwright configuration, and
adding coding-agent detection to CLI telemetry.

### 🐛 Fixes

- 🛡️ **Bumped StreamJsonRpc to 2.25.29 to clear the MessagePack
GHSA-hv8m-jj95-wg3x (CVE-2026-48109) NU1903 advisory** — The transitive
MessagePack 2.5.192 dependency pulled in via StreamJsonRpc 2.22.23 fell
within the advisory's vulnerable LZ4 decompression range. Aspire does
not use `MessagePackFormatter` or LZ4 — all StreamJsonRpc calls use
`SystemTextJsonFormatter` over local Unix sockets — so the vulnerability
was not reachable in practice. The bump clears the NU1903 warning for
consumers of the `Aspire.Hosting` package.
([#​18204](https://github.com/microsoft/aspire/pull/18204),
`@​mitchdenny`)
- 🎭 **`playwrightCliVersion` values that are not valid SemVer 2.0 now
fail fast with a clear diagnostic** — Previously an invalid override
(range expression, dist-tag like `latest`, or a `v`-prefixed string)
would surface as a generic npm resolution failure. The value is now
validated with strict SemVer parsing at startup; an error naming the
configuration key and the offending value is emitted immediately.
([#​18205](https://github.com/microsoft/aspire/pull/18205),
`@​mitchdenny`)
- 🤖 **CLI telemetry now detects and reports the calling coding agent** —
When the Aspire CLI is invoked from inside a known coding agent
environment (GitHub Copilot CLI, VS Code Copilot agent, etc.) the agent
name is included in the main CLI telemetry event. GitHub Copilot CLI is
specifically identified as `copilot-cli`.
([#​18240](https://github.com/microsoft/aspire/pull/18240),
`@​damianedwards`)

### 🏷️ Housekeeping

- 📄 Refreshed the `@​microsoft/aspire-cli` npm package README to be
TypeScript-only — updated examples to the current `ts-starter` template
(`apphost.mts` / `aspire.mjs`), added a backing-services snippet showing
`aspire add` for PostgreSQL and Redis, and documented `aspire dashboard
run` as a standalone dashboard option.
([#​18221](https://github.com/microsoft/aspire/pull/18221), `@​adamint`)

---

_Full Changelog:
[v13.4.4...v13.4.5](https://github.com/microsoft/aspire/compare/v13.4.4...v13.4.5)_

_Full commit:
[73114e86c64aeb9f3f3c7da8e37df1ae4281b27e](https://github.com/microsoft/aspire/commit/73114e86c64aeb9f3f3c7da8e37df1ae4281b27e)_

> Generated by [Generate release notes for a new stable Aspire
release](https://github.com/microsoft/aspire/actions/runs/27667814104/agentic_workflow)
· ● 4.4M

<!-- gh-aw-agentic-workflow: Generate release notes for a new stable
Aspire release, engine: copilot, version: 1.0.40, model:
claude-sonnet-4.6, id: 27667814104, workflow_id: release-notes-generate,
run: https://github.com/microsoft/aspire/actions/runs/27667814104 -->

## 13.4.4

## What's New in Aspire 13.4.4

Patch release for Aspire 13.4 with improved DCP connection reliability
during request execution and consistent `ExcludeFromMcp()` filtering
across all CLI MCP tools.

### 🐛 Fixes

* 🔌 **DCP requests could fail permanently when the connection dropped
mid-request** — If the underlying DCP channel closed while a request was
in flight, the error was surfaced directly instead of being retried.
Reconnection is now attempted as part of the DCP request retry path so
transient disconnections recover automatically without surfacing errors.
([#​18096](https://github.com/microsoft/aspire/pull/18096),
`@​karolz-ms`)
* 🔍 **Resources marked with `ExcludeFromMcp()` were not consistently
filtered from CLI MCP tools** — Resources with the
`resource.excludeFromMcp` property were not excluded uniformly from all
CLI MCP tool results. `list_resources`, `list_console_logs`,
`execute_resource_command`, `list_structured_logs`, `list_traces`, and
`list_trace_structured_logs` all now honor the exclusion, preventing
excluded resources and their telemetry from appearing in agent context.
([#​18150](https://github.com/microsoft/aspire/pull/18150), `@​JamesNK`)

### 🏷️ Housekeeping

* 📦 Improved npm CLI package metadata and hardened npm publish
validation in the release pipeline.
([#​18093](https://github.com/microsoft/aspire/pull/18093),
`@​adamratzman`)

* * *

_Full Changelog:
[v13.4.3...v13.4.4](https://github.com/microsoft/aspire/compare/v13.4.3...v13.4.4)_

_Full commit:
[ccc566c5ab3285c9beb8f38ede34734bb477c029](https://github.com/microsoft/aspire/commit/ccc566c5ab3285c9beb8f38ede34734bb477c029)_


Commits viewable in [compare
view](https://github.com/microsoft/aspire/compare/v13.4.3...v13.5.3).
</details>

Updated [Aspire.Hosting.Redis](https://github.com/microsoft/aspire) from
13.4.3 to 13.5.3.

<details>
<summary>Release notes</summary>

_Sourced from [Aspire.Hosting.Redis's
releases](https://github.com/microsoft/aspire/releases)._

## 13.5.3

## What's New in Aspire 13.5.3

Patch release for Aspire 13.5 that fixes Dashboard Graph view crashes
for resources with multi-path icons and restores missing public URLs for
DevTunnel resources.

### 🐛 Fixes

- 📊 **Dashboard Graph view could crash for Azure Blob resources** —
Resources such as those created with `AddBlobs` use icons containing
multiple SVG paths, which caused an XML parsing exception and broke the
dashboard circuit. The graph now combines multi-path icons correctly.
Regression introduced in 13.5. Fixes
[#​19489](https://github.com/microsoft/aspire/issues/19489).
([#​19585](https://github.com/microsoft/aspire/pull/19585), backport of
[#​19579](https://github.com/microsoft/aspire/pull/19579),
`@​sebastienros`)

- 🌐 **DevTunnel public URLs were missing from the Dashboard and MCP
snapshots** — DevTunnel port resources could report `Running` and
`Healthy` while showing no public URLs. Proxyless port allocation is now
limited to compute and container resources, allowing DevTunnels to
publish their actual public endpoints. Regression introduced in 13.5.
Fixes [#​19496](https://github.com/microsoft/aspire/issues/19496).
([#​19625](https://github.com/microsoft/aspire/pull/19625), backport of
[#​19590](https://github.com/microsoft/aspire/pull/19590),
`@​karolz-ms`, `@​danegsta`)

### 🏷️ Housekeeping

- 🚀 Bumped branding to 13.5.3

---

*Full Changelog:
[v13.5.2...v13.5.3](https://github.com/microsoft/aspire/compare/v13.5.2...v13.5.3)*

*Full commit:
[b5f143315ffb6968ea939a9978797a5b20e4c688](https://github.com/microsoft/aspire/commit/b5f143315ffb6968ea939a9978797a5b20e4c688)*

## 13.5.2

## What's New in Aspire 13.5.2


Patch release for Aspire 13.5 that removes an unused native helper
binary from the Windows CLI archives so 13.5 servicing releases stay
publishable to WinGet.


### 🐛 Fixes



- 🪟 **Windows CLI archives shipped an unused ~4.9 MB `hex1bpty.exe`** —
The Windows CLI archives (`aspire-cli-win-{x64,arm64}-*.zip`) bundled
Hex1b's out-of-process PTY host, which Aspire never executes (DCP owns
every pseudo-terminal Aspire surfaces). Besides the wasted download, the
extra unexplained executable stalled the WinGet publish, since every
binary in the archive goes through executable and malware validation. A
build-only MSBuild target now drops the file from the CLI publish
output; Unix native assets are unaffected. Regression new in 13.5.
([[#​19557](https://github.com/microsoft/aspire/pull/19557)](https://github.com/microsoft/aspire/pull/19557),
backport of #​19554, `@​mitchdenny`)



### 🏷️ Housekeeping



- 🚀 Bumped branding to 13.5.2




*Full Changelog:
[[v13.5.1...v13.5.2](https://github.com/microsoft/aspire/compare/v13.5.1...v13.5.2)](https://github.com/microsoft/aspire/compare/v13.5.1...v13.5.2)*


*Full commit:
[[a22cec24d76e764b3681977e314ab4a0aeed0240](https://github.com/microsoft/aspire/commit/a22cec24d76e764b3681977e314ab4a0aeed0240)](https://github.com/microsoft/aspire/commit/a22cec24d76e764b3681977e314ab4a0aeed0240)*


## 13.5.1

## What's New in Aspire 13.5.1


Patch release for Aspire 13.5 fixing a TypeScript/Java polyglot AppHost
compatibility regression when running the 13.5 SDK under an older
(13.4.x) CLI, plus a DCP update and release-pipeline housekeeping.

### 🐛 Fixes


- 🍎 **Polyglot AppHosts could crash on startup on macOS** — On macOS,
polyglot (TypeScript/Python/Java/Go/Rust) AppHosts could crash during
startup due to an interaction between how DCP's Go runtime forks
detached processes and how .NET Native AOT installs its signal handlers.
Updated DCP (Developer Control Plane) to 0.25.13 to resolve the crash.
([[#​19528](https://github.com/microsoft/aspire/pull/19528)](https://github.com/microsoft/aspire/pull/19528))

- 🔗 **Polyglot AppHosts on the 13.5 SDK crashed under an older CLI with
`MissingMethodException`** — A TypeScript or Java AppHost built with the
13.5 SDK failed to start when launched by an older (13.4.x) CLI, because
the newer codegen called `Aspire.TypeSystem` members that don't exist in
the CLI's older contract. Code generation now probes for these additive
capabilities before using them, so older CLIs skip only the unsupported
feature and startup succeeds. Regression introduced in 13.5 by #​19365.
Fixes #​19503.
([[#​19524](https://github.com/microsoft/aspire/pull/19524)](https://github.com/microsoft/aspire/pull/19524),
backport of #​19506, `@​adamint`)


### 🏷️ Housekeeping



- 📦 Updated DCP (Developer Control Plane) to 0.25.13
([[#​19528](https://github.com/microsoft/aspire/pull/19528)](https://github.com/microsoft/aspire/pull/19528))

- 🔧 Restored WinGet publication using .NET 9 `wingetcreate`
([[#​19509](https://github.com/microsoft/aspire/pull/19509)](https://github.com/microsoft/aspire/pull/19509))

- 🧹 Removed the pipeline-scoped `Publish-Build-Assets` group from the
release pipeline
([[#​19523](https://github.com/microsoft/aspire/pull/19523)](https://github.com/microsoft/aspire/pull/19523),
[[#​19163](https://github.com/microsoft/aspire/pull/19163)](https://github.com/microsoft/aspire/pull/19163))

- 🚀 Bumped branding to 13.5.1
([[#​19531](https://github.com/microsoft/aspire/pull/19531)](https://github.com/microsoft/aspire/pull/19531))




*Full Changelog:
[[v13.5.0...v13.5.1](https://github.com/microsoft/aspire/compare/v13.5.0...v13.5.1)](https://github.com/microsoft/aspire/compare/v13.5.0...v13.5.1)*


*Full commit:
[[69db530a4816698cf1d5fa4557933e0ac4f127c6](https://github.com/microsoft/aspire/commit/69db530a4816698cf1d5fa4557933e0ac4f127c6)](https://github.com/microsoft/aspire/commit/69db530a4816698cf1d5fa4557933e0ac4f127c6)*

## 13.5.0

# Aspire 13.5.0

Aspire 13.5 is a developer-experience release focused on a richer, more
interactive AppHost, closer C# and TypeScript parity, sharper tooling,
more flexible deployment modeling, and a broad set of runtime-stability
improvements.

## Highlights

- 💬 **Richer AppHost interactions** — The Interaction Service now works
across C# and TypeScript AppHosts with stable prompts and dynamic
inputs, file uploads, progress dialogs, notifications, and user-defined
resource command arguments that surface as dashboard controls and CLI
options.
- 🖥️ **Interactive terminal sessions** — The experimental
`WithTerminal()` API lets resources host REPLs, shells, TUIs, and other
interactive programs directly in the dashboard, with an opt-in `aspire
terminal` CLI command for attaching from your shell.
- 🌐 **TypeScript AppHost is generally available** — Polyglot AppHosts no
longer require the `ASPIREATS001` experimental diagnostic and gain
custom health checks, container file copying, HTTPS developer
certificates, faster startup, and several reliability fixes that further
close the gap with C#.
- 🛠️ **CLI installation and reliability** — The Aspire CLI is available
through npm and Nix alongside Homebrew, WinGet, mise, and NuGet. New C#
AppHosts enable the CLI bundle by default, while `aspire stop --force`,
`aspire update --migrate`, `aspire doctor`, docs search, signal
handling, and stale-socket cleanup all improve day-to-day workflows.
- 🎨 **Refreshed dashboard** — The dashboard adopts official Aspire
branding and a new accessible design-token system, with timestamp and
exact numeric telemetry filters, console-log text search, clearer
reconnect and health-check experiences, and correct telemetry streaming
while filters are active.
- 💻 **Rebranded VS Code extension** — The extension is now named
**Aspire** and adds an in-editor dashboard, Bun and MAUI debugging,
resource commands in the tree view, discovered AppHosts, improved
parameter handling, and more efficient workspace discovery.
- ☸️ **More expressive deployments** — Kubernetes and AKS gain
first-class persistent volumes, Azure Container Apps adds deterministic
unique resource naming, Azure environments support delegated subnets,
and Docker Compose can publish Blazor gateways and configure shared
memory.
- ☁️ **Expanded hosting integrations** — Azure resources can be
referenced across resource groups, subscriptions, and tenants; the new
`Aspire.Hosting.Dotnet` package models .NET projects by path; Radius
deployment arrives in preview; and Foundry Local, Redis modules, dev
tunnels, Go debugging, and other integrations gain new capabilities.

## ⚠️ Breaking changes

Notable changes include hosting context `ServiceProvider` properties
being renamed to `Services`, `PublishAsConnectionString` becoming
obsolete in favor of `AddConnectionString`, removal of `aspire ps
--resources` and `--include-hidden` in favor of `aspire describe`,
earlier proxyless endpoint port allocation, deprecation of the GitHub
Models integration, removal of the dashboard AI Assistant, and opt-in
rather than automatic dashboard launch from the VS Code extension.

See the full list and migration guidance in the [Aspire 13.5 breaking
changes](https://aspire.dev/whats-new/aspire-13-5/#breaking-changes).

## 📖 Learn more

For complete details, examples, migration guidance, and everything new
in this release, read [What's new in Aspire
13.5](https://aspire.dev/whats-new/aspire-13-5/).

Thank you to all the community contributors who helped make Aspire 13.5
possible! 💜

---

_Full Changelog:
[v13.4.6...v13.5.0](https://github.com/microsoft/aspire/compare/v13.4.6...v13.5.0)_

_Full commit:
[e076d8e427cb3afb528dbd605acd74c3aea69f94](https://github.com/microsoft/aspire/commit/e076d8e427cb3afb528dbd605acd74c3aea69f94)_

## 13.4.6

## What's New in Aspire 13.4.6

Patch release for Aspire 13.4 fixing polyglot AppHost code generation
binding when CLI and SDK versions diverge, resource service port
collision in `--isolated` mode, and a MongoDB.Driver dependency update.

### 🐛 Fixes

- 🔗 **Polyglot AppHost code generation silently failed when CLI and SDK
versions diverged** — `Aspire.TypeSystem` used a floating strong-name
`AssemblyVersion` that changed with every build. When the installed
Aspire CLI was built at a different version than the AppHost's SDK, the
CLR couldn't satisfy the strong-name bind and every code generator
(TypeScript, Python, Java, Go, Rust) was silently dropped, surfacing as
`No code generator found for language: <lang>`. The `AssemblyVersion` is
now frozen at a stable constant so any compatible CLI/SDK pair on 13.4
binds successfully. Relates to #​18110 and #​17910.
([#​18160](https://github.com/microsoft/aspire/pull/18160),
`@​sebastienros`)

- 🔌 **Multiple AppHosts started with `--isolated` collided on the
resource service port** — Both instances tried to bind to the same fixed
port from `ASPIRE_RESOURCE_SERVICE_ENDPOINT_URL`, causing an "address
already in use" error on the second instance. `DashboardServiceHost` now
binds to port 0 on loopback when `RandomizePorts` is true (set by
`--isolated`), letting the OS assign a unique port per instance.
([#​18341](https://github.com/microsoft/aspire/pull/18341), `@​JamesNK`)

- 🍃 **MongoDB.Driver updated to 3.9.0** — Removes a wrongly pinned
`SharpCompress` transitive dependency and uses the corrected `Snappier`
transitive. Fixes #​17981.
([#​18279](https://github.com/microsoft/aspire/pull/18279),
`@​Falco20019`)

### 🏷️ Housekeeping

- 🚀 Bumped branding to 13.4.6
([#​18343](https://github.com/microsoft/aspire/pull/18343))

---

_Full Changelog:
[v13.4.5...v13.4.6](https://github.com/microsoft/aspire/compare/v13.4.5...v13.4.6)_

_Full commit:
[87fe259e4fc244c599019a7b1304c85a1488f248](https://github.com/microsoft/aspire/commit/87fe259e4fc244c599019a7b1304c85a1488f248)_

> Generated by [Generate release notes for a new stable Aspire
release](https://github.com/microsoft/aspire/actions/runs/27855270514) ·
131 AIC · ⌖ 13.5 AIC · ⊞ 37.4K

<!-- gh-aw-agentic-workflow: Generate release notes for a new stable
Aspire release, engine: copilot, version: 1.0.60, model:
claude-sonnet-4.6, id: 27855270514, workflow_id: release-notes-generate,
run: https://github.com/microsoft/aspire/actions/runs/27855270514 -->

## 13.4.5

## What's New in Aspire 13.4.5

Patch release for Aspire 13.4 clearing a transitive MessagePack security
advisory, tightening CLI validation for Playwright configuration, and
adding coding-agent detection to CLI telemetry.

### 🐛 Fixes

- 🛡️ **Bumped StreamJsonRpc to 2.25.29 to clear the MessagePack
GHSA-hv8m-jj95-wg3x (CVE-2026-48109) NU1903 advisory** — The transitive
MessagePack 2.5.192 dependency pulled in via StreamJsonRpc 2.22.23 fell
within the advisory's vulnerable LZ4 decompression range. Aspire does
not use `MessagePackFormatter` or LZ4 — all StreamJsonRpc calls use
`SystemTextJsonFormatter` over local Unix sockets — so the vulnerability
was not reachable in practice. The bump clears the NU1903 warning for
consumers of the `Aspire.Hosting` package.
([#​18204](https://github.com/microsoft/aspire/pull/18204),
`@​mitchdenny`)
- 🎭 **`playwrightCliVersion` values that are not valid SemVer 2.0 now
fail fast with a clear diagnostic** — Previously an invalid override
(range expression, dist-tag like `latest`, or a `v`-prefixed string)
would surface as a generic npm resolution failure. The value is now
validated with strict SemVer parsing at startup; an error naming the
configuration key and the offending value is emitted immediately.
([#​18205](https://github.com/microsoft/aspire/pull/18205),
`@​mitchdenny`)
- 🤖 **CLI telemetry now detects and reports the calling coding agent** —
When the Aspire CLI is invoked from inside a known coding agent
environment (GitHub Copilot CLI, VS Code Copilot agent, etc.) the agent
name is included in the main CLI telemetry event. GitHub Copilot CLI is
specifically identified as `copilot-cli`.
([#​18240](https://github.com/microsoft/aspire/pull/18240),
`@​damianedwards`)

### 🏷️ Housekeeping

- 📄 Refreshed the `@​microsoft/aspire-cli` npm package README to be
TypeScript-only — updated examples to the current `ts-starter` template
(`apphost.mts` / `aspire.mjs`), added a backing-services snippet showing
`aspire add` for PostgreSQL and Redis, and documented `aspire dashboard
run` as a standalone dashboard option.
([#​18221](https://github.com/microsoft/aspire/pull/18221), `@​adamint`)

---

_Full Changelog:
[v13.4.4...v13.4.5](https://github.com/microsoft/aspire/compare/v13.4.4...v13.4.5)_

_Full commit:
[73114e86c64aeb9f3f3c7da8e37df1ae4281b27e](https://github.com/microsoft/aspire/commit/73114e86c64aeb9f3f3c7da8e37df1ae4281b27e)_

> Generated by [Generate release notes for a new stable Aspire
release](https://github.com/microsoft/aspire/actions/runs/27667814104/agentic_workflow)
· ● 4.4M

<!-- gh-aw-agentic-workflow: Generate release notes for a new stable
Aspire release, engine: copilot, version: 1.0.40, model:
claude-sonnet-4.6, id: 27667814104, workflow_id: release-notes-generate,
run: https://github.com/microsoft/aspire/actions/runs/27667814104 -->

## 13.4.4

## What's New in Aspire 13.4.4

Patch release for Aspire 13.4 with improved DCP connection reliability
during request execution and consistent `ExcludeFromMcp()` filtering
across all CLI MCP tools.

### 🐛 Fixes

* 🔌 **DCP requests could fail permanently when the connection dropped
mid-request** — If the underlying DCP channel closed while a request was
in flight, the error was surfaced directly instead of being retried.
Reconnection is now attempted as part of the DCP request retry path so
transient disconnections recover automatically without surfacing errors.
([#​18096](https://github.com/microsoft/aspire/pull/18096),
`@​karolz-ms`)
* 🔍 **Resources marked with `ExcludeFromMcp()` were not consistently
filtered from CLI MCP tools** — Resources with the
`resource.excludeFromMcp` property were not excluded uniformly from all
CLI MCP tool results. `list_resources`, `list_console_logs`,
`execute_resource_command`, `list_structured_logs`, `list_traces`, and
`list_trace_structured_logs` all now honor the exclusion, preventing
excluded resources and their telemetry from appearing in agent context.
([#​18150](https://github.com/microsoft/aspire/pull/18150), `@​JamesNK`)

### 🏷️ Housekeeping

* 📦 Improved npm CLI package metadata and hardened npm publish
validation in the release pipeline.
([#​18093](https://github.com/microsoft/aspire/pull/18093),
`@​adamratzman`)

* * *

_Full Changelog:
[v13.4.3...v13.4.4](https://github.com/microsoft/aspire/compare/v13.4.3...v13.4.4)_

_Full commit:
[ccc566c5ab3285c9beb8f38ede34734bb477c029](https://github.com/microsoft/aspire/commit/ccc566c5ab3285c9beb8f38ede34734bb477c029)_


Commits viewable in [compare
view](https://github.com/microsoft/aspire/compare/v13.4.3...v13.5.3).
</details>

Updated
[Aspire.StackExchange.Redis.DistributedCaching](https://github.com/microsoft/aspire)
from 13.4.3 to 13.5.3.

<details>
<summary>Release notes</summary>

_Sourced from [Aspire.StackExchange.Redis.DistributedCaching's
releases](https://github.com/microsoft/aspire/releases)._

## 13.5.3

## What's New in Aspire 13.5.3

Patch release for Aspire 13.5 that fixes Dashboard Graph view crashes
for resources with multi-path icons and restores missing public URLs for
DevTunnel resources.

### 🐛 Fixes

- 📊 **Dashboard Graph view could crash for Azure Blob resources** —
Resources such as those created with `AddBlobs` use icons containing
multiple SVG paths, which caused an XML parsing exception and broke the
dashboard circuit. The graph now combines multi-path icons correctly.
Regression introduced in 13.5. Fixes
[#​19489](https://github.com/microsoft/aspire/issues/19489).
([#​19585](https://github.com/microsoft/aspire/pull/19585), backport of
[#​19579](https://github.com/microsoft/aspire/pull/19579),
`@​sebastienros`)

- 🌐 **DevTunnel public URLs were missing from the Dashboard and MCP
snapshots** — DevTunnel port resources could report `Running` and
`Healthy` while showing no public URLs. Proxyless port allocation is now
limited to compute and container resources, allowing DevTunnels to
publish their actual public endpoints. Regression introduced in 13.5.
Fixes [#​19496](https://github.com/microsoft/aspire/issues/19496).
([#​19625](https://github.com/microsoft/aspire/pull/19625), backport of
[#​19590](https://github.com/microsoft/aspire/pull/19590),
`@​karolz-ms`, `@​danegsta`)

### 🏷️ Housekeeping

- 🚀 Bumped branding to 13.5.3

---

*Full Changelog:
[v13.5.2...v13.5.3](https://github.com/microsoft/aspire/compare/v13.5.2...v13.5.3)*

*Full commit:
[b5f143315ffb6968ea939a9978797a5b20e4c688](https://github.com/microsoft/aspire/commit/b5f143315ffb6968ea939a9978797a5b20e4c688)*

## 13.5.2

## What's New in Aspire 13.5.2


Patch release for Aspire 13.5 that removes an unused native helper
binary from the Windows CLI archives so 13.5 servicing releases stay
publishable to WinGet.


### 🐛 Fixes



- 🪟 **Windows CLI archives shipped an unused ~4.9 MB `hex1bpty.exe`** —
The Windows CLI archives (`aspire-cli-win-{x64,arm64}-*.zip`) bundled
Hex1b's out-of-process PTY host, which Aspire never executes (DCP owns
every pseudo-terminal Aspire surfaces). Besides the wasted download, the
extra unexplained executable stalled the WinGet publish, since every
binary in the archive goes through executable and malware validation. A
build-only MSBuild target now drops the file from the CLI publish
output; Unix native assets are unaffected. Regression new in 13.5.
([[#​19557](https://github.com/microsoft/aspire/pull/19557)](https://github.com/microsoft/aspire/pull/19557),
backport of #​19554, `@​mitchdenny`)



### 🏷️ Housekeeping



- 🚀 Bumped branding to 13.5.2




*Full Changelog:
[[v13.5.1...v13.5.2](https://github.com/microsoft/aspire/compare/v13.5.1...v13.5.2)](https://github.com/microsoft/aspire/compare/v13.5.1...v13.5.2)*


*Full commit:
[[a22cec24d76e764b3681977e314ab4a0aeed0240](https://github.com/microsoft/aspire/commit/a22cec24d76e764b3681977e314ab4a0aeed0240)](https://github.com/microsoft/aspire/commit/a22cec24d76e764b3681977e314ab4a0aeed0240)*


## 13.5.1

## What's New in Aspire 13.5.1


Patch release for Aspire 13.5 fixing a TypeScript/Java polyglot AppHost
compatibility regression when running the 13.5 SDK under an older
(13.4.x) CLI, plus a DCP update and release-pipeline housekeeping.

### 🐛 Fixes


- 🍎 **Polyglot AppHosts could crash on startup on macOS** — On macOS,
polyglot (TypeScript/Python/Java/Go/Rust) AppHosts could crash during
startup due to an interaction between how DCP's Go runtime forks
detached processes and how .NET Native AOT installs its signal handlers.
Updated DCP (Developer Control Plane) to 0.25.13 to resolve the crash.
([[#​19528](https://github.com/microsoft/aspire/pull/19528)](https://github.com/microsoft/aspire/pull/19528))

- 🔗 **Polyglot AppHosts on the 13.5 SDK crashed under an older CLI with
`MissingMethodException`** — A TypeScript or Java AppHost built with the
13.5 SDK failed to start when launched by an older (13.4.x) CLI, because
the newer codegen called `Aspire.TypeSystem` members that don't exist in
the CLI's older contract. Code generation now probes for these additive
capabilities before using them, so older CLIs skip only the unsupported
feature and startup succeeds. Regression introduced in 13.5 by #​19365.
Fixes #​19503.
([[#​19524](https://github.com/microsoft/aspire/pull/19524)](https://github.com/microsoft/aspire/pull/19524),
backport of #​19506, `@​adamint`)


### 🏷️ Housekeeping



- 📦 Updated DCP (Developer Control Plane) to 0.25.13
([[#​19528](https://github.com/microsoft/aspire/pull/19528)](https://github.com/microsoft/aspire/pull/19528))

- 🔧 Restored WinGet publication using .NET 9 `wingetcreate`
([[#​19509](https://github.com/microsoft/aspire/pull/19509)](https://github.com/microsoft/aspire/pull/19509))

- 🧹 Removed the pipeline-scoped `Publish-Build-Assets` group from the
release pipeline
([[#​19523](https://github.com/microsoft/aspire/pull/19523)](https://github.com/microsoft/aspire/pull/19523),
[[#​19163](https://github.com/microsoft/aspire/pull/19163)](https://github.com/microsoft/aspire/pull/19163))

- 🚀 Bumped branding to 13.5.1
([[#​19531](https://github.com/microsoft/aspire/pull/19531)](https://github.com/microsoft/aspire/pull/19531))




*Full Changelog:
[[v13.5.0...v13.5.1](https://github.com/microsoft/aspire/compare/v13.5.0...v13.5.1)](https://github.com/microsoft/aspire/compare/v13.5.0...v13.5.1)*


*Full commit:
[[69db530a4816698cf1d5fa4557933e0ac4f127c6](https://github.com/microsoft/aspire/commit/69db530a4816698cf1d5fa4557933e0ac4f127c6)](https://github.com/microsoft/aspire/commit/69db530a4816698cf1d5fa4557933e0ac4f127c6)*

## 13.5.0

# Aspire 13.5.0

Aspire 13.5 is a developer-experience release focused on a richer, more
interactive AppHost, closer C# and TypeScript parity, sharper tooling,
more flexible deployment modeling, and a broad set of runtime-stability
improvements.

## Highlights

- 💬 **Richer AppHost interactions** — The Interaction Service now works
across C# and TypeScript AppHosts with stable prompts and dynamic
inputs, file uploads, progress dialogs, notifications, and user-defined
resource command arguments that surface as dashboard controls and CLI
options.
- 🖥️ **Interactive terminal sessions** — The experimental
`WithTerminal()` API lets resources host REPLs, shells, TUIs, and other
interactive programs directly in the dashboard, with an opt-in `aspire
terminal` CLI command for attaching from your shell.
- 🌐 **TypeScript AppHost is generally available** — Polyglot AppHosts no
longer require the `ASPIREATS001` experimental diagnostic and gain
custom health checks, container file copying, HTTPS developer
certificates, faster startup, and several reliability fixes that further
close the gap with C#.
- 🛠️ **CLI installation and reliability** — The Aspire CLI is available
through npm and Nix alongside Homebrew, WinGet, mise, and NuGet. New C#
AppHosts enable the CLI bundle by default, while `aspire stop --force`,
`aspire update --migrate`, `aspire doctor`, docs search, signal
handling, and stale-socket cleanup all improve day-to-day workflows.
- 🎨 **Refreshed dashboard** — The dashboard adopts official Aspire
branding and a new accessible design-token system, with timestamp and
exact numeric telemetry filters, console-log text search, clearer
reconnect and health-check experiences, and correct telemetry streaming
while filters are active.
- 💻 **Rebranded VS Code extension** — The extension is now named
**Aspire** and adds an in-editor dashboard, Bun and MAUI debugging,
resource commands in the tree view, discovered AppHosts, improved
parameter handling, and more efficient workspace discovery.
- ☸️ **More expressive deployments** — Kubernetes and AKS gain
first-class persistent volumes, Azure Container Apps adds deterministic
unique resource naming, Azure environments support delegated subnets,
and Docker Compose can publish Blazor gateways and configure shared
memory.
- ☁️ **Expanded hosting integrations** — Azure resources can be
referenced across resource groups, subscriptions, and tenants; the new
`Aspire.Hosting.Dotnet` package models .NET projects by path; Radius
deployment arrives in preview; and Foundry Local, Redis modules, dev
tunnels, Go debugging, and other integrations gain new capabilities.

## ⚠️ Breaking changes

Notable changes include hosting context `ServiceProvider` properties
being renamed to `Services`, `PublishAsConnectionString` becoming
obsolete in favor of `AddConnectionString`, removal of `aspire ps
--resources` and `--include-hidden` in favor of `aspire describe`,
earlier proxyless endpoint port allocation, deprecation of the GitHub
Models integration, removal of the dashboard AI Assistant, and opt-in
rather than automatic dashboard launch from the VS Code extension.

See the full list and migration guidance in the [Aspire 13.5 breaking
changes](https://aspire.dev/whats-new/aspire-13-5/#breaking-changes).

## 📖 Learn more

For complete details, examples, migration guidance, and everything new
in this release, read [What's new in Aspire
13.5](https://aspire.dev/whats-new/aspire-13-5/).

Thank you to all the community contributors who helped make Aspire 13.5
possible! 💜

---

_Full Changelog:
[v13.4.6...v13.5.0](https://github.com/microsoft/aspire/compare/v13.4.6...v13.5.0)_

_Full commit:
[e076d8e427cb3afb528dbd605acd74c3aea69f94](https://github.com/microsoft/aspire/commit/e076d8e427cb3afb528dbd605acd74c3aea69f94)_

## 13.4.6

## What's New in Aspire 13.4.6

Patch release for Aspire 13.4 fixing polyglot AppHost code generation
binding when CLI and SDK versions diverge, resource service port
collision in `--isolated` mode, and a MongoDB.Driver dependency update.

### 🐛 Fixes

- 🔗 **Polyglot AppHost code generation silently failed when CLI and SDK
versions diverged** — `Aspire.TypeSystem` used a floating strong-name
`AssemblyVersion` that changed with every build. When the installed
Aspire CLI was built at a different version than the AppHost's SDK, the
CLR couldn't satisfy the strong-name bind and every code generator
(TypeScript, Python, Java, Go, Rust) was silently dropped, surfacing as
`No code generator found for language: <lang>`. The `AssemblyVersion` is
now frozen at a stable constant so any compatible CLI/SDK pair on 13.4
binds successfully. Relates to #​18110 and #​17910.
([#​18160](https://github.com/microsoft/aspire/pull/18160),
`@​sebastienros`)

- 🔌 **Multiple AppHosts started with `--isolated` collided on the
resource service port** — Both instances tried to bind to the same fixed
port from `ASPIRE_RESOURCE_SERVICE_ENDPOINT_URL`, causing an "address
already in use" error on the second instance. `DashboardServiceHost` now
binds to port 0 on loopback when `RandomizePorts` is true (set by
`--isolated`), letting the OS assign a unique port per instance.
([#​18341](https://github.com/microsoft/aspire/pull/18341), `@​JamesNK`)

- 🍃 **MongoDB.Driver updated to 3.9.0** — Removes a wrongly pinned
`SharpCompress` transitive dependency and uses the corrected `Snappier`
transitive. Fixes #​17981.
([#​18279](https://github.com/microsoft/aspire/pull/18279),
`@​Falco20019`)

### 🏷️ Housekeeping

- 🚀 Bumped branding to 13.4.6
([#​18343](https://github.com/microsoft/aspire/pull/18343))

---

_Full Changelog:
[v13.4.5...v13.4.6](https://github.com/microsoft/aspire/compare/v13.4.5...v13.4.6)_

_Full commit:
[87fe259e4fc244c599019a7b1304c85a1488f248](https://github.com/microsoft/aspire/commit/87fe259e4fc244c599019a7b1304c85a1488f248)_

> Generated by [Generate release notes for a new stable Aspire
release](https://github.com/microsoft/aspire/actions/runs/27855270514) ·
131 AIC · ⌖ 13.5 AIC · ⊞ 37.4K

<!-- gh-aw-agentic-workflow: Generate release notes for a new stable
Aspire release, engine: copilot, version: 1.0.60, model:
claude-sonnet-4.6, id: 27855270514, workflow_id: release-notes-generate,
run: https://github.com/microsoft/aspire/actions/runs/27855270514 -->

## 13.4.5

## What's New in Aspire 13.4.5

Patch release for Aspire 13.4 clearing a transitive MessagePack security
advisory, tightening CLI validation for Playwright configuration, and
adding coding-agent detection to CLI telemetry.

### 🐛 Fixes

- 🛡️ **Bumped StreamJsonRpc to 2.25.29 to clear the MessagePack
GHSA-hv8m-jj95-wg3x (CVE-2026-48109) NU1903 advisory** — The transitive
MessagePack 2.5.192 dependency pulled in via StreamJsonRpc 2.22.23 fell
within the advisory's vulnerable LZ4 decompression range. Aspire does
not use `MessagePackFormatter` or LZ4 — all StreamJsonRpc calls use
`SystemTextJsonFormatter` over local Unix sockets — so the vulnerability
was not reachable in practice. The bump clears the NU1903 warning for
consumers of the `Aspire.Hosting` package.
([#​18204](https://github.com/microsoft/aspire/pull/18204),
`@​mitchdenny`)
- 🎭 **`playwrightCliVersion` values that are not valid SemVer 2.0 now
fail fast with a clear diagnostic** — Previously an invalid override
(range expression, dist-tag like `latest`, or a `v`-prefixed string)
would surface as a generic npm resolution failure. The value is now
validated with strict SemVer parsing at startup; an error naming the
configuration key and the offending value is emitted immediately.
([#​18205](https://github.com/microsoft/aspire/pull/18205),
`@​mitchdenny`)
- 🤖 **CLI telemetry now detects and reports the calling coding agent** —
When the Aspire CLI is invoked from inside a known coding agent
environment (GitHub Copilot CLI, VS Code Copilot agent, etc.) the agent
name is included in the main CLI telemetry event. GitHub Copilot CLI is
specifically identified as `copilot-cli`.
([#​18240](https://github.com/microsoft/aspire/pull/18240),
`@​damianedwards`)

### 🏷️ Housekeeping

- 📄 Refreshed the `@​microsoft/aspire-cli` npm package README to be
TypeScript-only — updated examples to the current `ts-starter` template
(`apphost.mts` / `aspire.mjs`), added a backing-services snippet showing
`aspire add` for PostgreSQL and Redis, and documented `aspire dashboard
run` as a standalone dashboard option.
([#​18221](https://github.com/microsoft/aspire/pull/18221), `@​adamint`)

---

_Full Changelog:
[v13.4.4...v13.4.5](https://github.com/microsoft/aspire/compare/v13.4.4...v13.4.5)_

_Full commit:
[73114e86c64aeb9f3f3c7da8e37df1ae4281b27e](https://github.com/microsoft/aspire/commit/73114e86c64aeb9f3f3c7da8e37df1ae4281b27e)_

> Generated by [Generate release notes for a new stable Aspire
release](https://github.com/microsoft/aspire/actions/runs/27667814104/agentic_workflow)
· ● 4.4M

<!-- gh-aw-agentic-workflow: Generate release notes for a new stable
Aspire release, engine: copilot, version: 1.0.40, model:
claude-sonnet-4.6, id: 27667814104, workflow_id: release-notes-generate,
run: https://github.com/microsoft/aspire/actions/runs/27667814104 -->

## 13.4.4

## What's New in Aspire 13.4.4

Patch release for Aspire 13.4 with improved DCP connection reliability
during request execution and consistent `ExcludeFromMcp()` filtering
across all CLI MCP tools.

### 🐛 Fixes

* 🔌 **DCP requests could fail permanently when the connection dropped
mid-request** — If the underlying DCP channel closed while a request was
in flight, the error was surfaced directly instead of being retried.
Reconnection is now attempted as part of the DCP request retry path so
transient disconnections recover automatically without surfacing errors.
([#​18096](https://github.com/microsoft/aspire/pull/18096),
`@​karolz-ms`)
* 🔍 **Resources marked with `ExcludeFromMcp()` were not consistently
filtered from CLI MCP tools** — Resources with the
`resource.excludeFromMcp` property were not excluded uniformly from all
CLI MCP tool results. `list_resources`, `list_console_logs`,
`execute_resource_command`, `list_structured_logs`, `list_traces`, and
`list_trace_structured_logs` all now honor the exclusion, preventing
excluded resources and their telemetry from appearing in agent context.
([#​18150](https://github.com/microsoft/aspire/pull/18150), `@​JamesNK`)

### 🏷️ Housekeeping

* 📦 Improved npm CLI package metadata and hardened npm publish
validation in the release pipeline.
([#​18093](https://github.com/microsoft/aspire/pull/18093),
`@​adamratzman`)

* * *

_Full Changelog:
[v13.4.3...v13.4.4](https://github.com/microsoft/aspire/compare/v13.4.3...v13.4.4)_

_Full commit:
[ccc566c5ab3285c9beb8f38ede34734bb477c029](https://github.com/microsoft/aspire/commit/ccc566c5ab3285c9beb8f38ede34734bb477c029)_


Commits viewable in [compare
view](https://github.com/microsoft/aspire/compare/v13.4.3...v13.5.3).
</details>

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners

Projects

None yet

Development

Successfully merging this pull request may close these issues.

DevTunnel port resources are Running but Dashboard URLs are empty in 13.5.0

3 participants